﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WorkWithPeople
{
    public partial class FormEditPopUp : Form
    {
        private Guid ItemId;
        private bool IsNew;

        public FormEditPopUp()
        {
            IsNew = true;
            InitializeComponent();
        }

        public FormEditPopUp(Guid Id, string Name, string secondName,
            string lastName, string birthday, string phoneNumber, string streetAdress)
        {
            InitializeComponent();
            this.IsNew = false;
            this.ItemId = Id;
            textBox1.Text = Name;
            textBox2.Text = secondName;
            textBox3.Text = lastName;
            dateTimePicker1.Text = birthday;
            textBox5.Text = phoneNumber;
            textBox6.Text = streetAdress;
        }

        private PersonInfo GetPersonById(Guid Id)
        {
            PersonInfo result = null;
            foreach (var person in DB.Persons)
            {
                if (person.Id == Id) 
                {
                    result = person;
                    break;
                }
            }
            return result;
        }

        private void savePersonDetails_Click(object sender, EventArgs e)
        {
            if (IsNew)
            {
                // new
                PersonInfo pi = new PersonInfo();
                pi.Name = textBox1.Text;
                pi.SecondName = textBox2.Text;
                pi.LastName = textBox3.Text;
                pi.Birthday = dateTimePicker1.Text;
                pi.PhoneNumber = textBox5.Text;
                pi.StreetAdress = textBox6.Text;
                DB.Persons.Add(pi);
            }
            else
            {
                // update
                var pi = GetPersonById(ItemId);
                pi.Name = textBox1.Text;
                pi.SecondName = textBox2.Text;
                pi.LastName = textBox3.Text;
                pi.Birthday = dateTimePicker1.Text;
                pi.PhoneNumber = textBox5.Text;
                pi.StreetAdress = textBox6.Text;
            }
            var form1 = (Form1)this.Owner; // расписал на 2 строки... тут я говорю что владелец это Форм1. И мы получаем доступ к его методам когда жмакаем контро+пробел в конце переменной
            form1.ReloadList(); // а тут мы вызваем метод релоад лист. ща поищу инфу про кастин.. я хз как без него сделать. (с формами не работаю может препод подскажет)
            Close();
            // фот собственно логиа рефреша с прошлой формы.. на втеранк ое непонятно.
            // знаеш что такое приведение типов?
            // ((Form1)this.Owner).ReloadList(); // <- зис это нынешняя форма (попап),  его владелец это тот кто его создал (в нашем случае форма 1)
            // когда наводиш мышкой Овнер может быть любой формой и мы незнаем его спецфичных методов (типа рефреша) поэтому мы принудительно говорим что это форма один. делаем это так:            

            
        }

    }
}
